package com.juzipi.demo.singleton.type7;

public class SingletonTest7 {

    public static void main(String[] args) {
        //使用静态内部类完成单例模式
        Singleton instance = Singleton.getInstance();
        Singleton instance1 = Singleton.getInstance();
        System.out.println(instance == instance1);
        System.out.println(instance.hashCode());
        System.out.println(instance1.hashCode());
        System.out.println(instance.equals(instance1));

    }
}

//静态内部类,推荐使用
class Singleton{

//    private static volatile Singleton instance;

    //构造器私有化
    private Singleton(){

    }

    //写一个静态内部类，该类中有一个静态的属性 Singleton
    private static class SingletonInstance{
        private static final Singleton INSTANCE = new Singleton();
    }

    //提供一个静态的公有方法，直接返回SingletonInstance.INSTANCE
    public static Singleton getInstance(){
        return SingletonInstance.INSTANCE;
    }

}
